nethackfandomcom-20200214-history
Source:NetHack 2.3e/config.h
Below is the full text to config.h from the source code of NetHack 2.3e. To link to a particular line, write [[NetHack 2.3e/config.h#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code 1. /* SCCS Id: @(#)config.h 2.3 87/12/12 2. /* Copyright © Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. 4. #ifndef CONFIG /* make sure the compiler does not see the typedefs twice */ 5. #define CONFIG 6. 7. #define CHDIR /* delete if no chdir() available */ 8. 9. /* 10. * Some include files are in a different place under SYSV 11. * BSD SYSV 12. * 13. * 14. * 15. * Some routines are called differently 16. * index strchr 17. * rindex strrchr 18. * Also, the code for suspend and various ioctls is only given for BSD4.2 19. */ 20. #ifdef __MSDOS__ /* Turbo C auto-defines __MSDOS__, others MSDOS */ 21. /* # define MSDOS /* define for MS-DOS (actually defined by compiler) */ 22. #endif 23. #define UNIX /* delete if no fork(), exec() available */ 24. /* #define GENIX /* Yet Another Unix Clone */ 25. #define BSD /* defind for 4.n BSD */ 26. /* #define SYSV /* define for System V */ 27. /* #define NETWORK /* if running on a networked system */ 28. 29. /* #define BETA /* if a beta-test copy MRS */ 30. #define VERSION "2.3e" /* version number. */ 31. 32. #define PYRAMID_BUG /* avoid a bug on the Pyramid */ 33. /* #define APOLLO /* same for the Apollo */ 34. /* #define STUPID /* avoid some complicated expressions if 35. your C compiler chokes on them */ 36. /* #define TERMINFO /* uses "curses" rather than termcap */ 37. 38. #ifdef __TURBOC__ 39. #define alloc malloc 40. #define signal ssignal 41. #endif 42. 43. #ifndef WIZARD /* allow for compile-time or Makefile changes */ 44. # define WIZARD "mike" /* the person allowed to use the -D option */ 45. #endif 46. 47. #define RECORD "record" /* the file containing the list of topscorers */ 48. #define LOGFILE "logfile" /* larger file for debugging purposes */ 49. #define NEWS "news" /* the file containing the latest hack news */ 50. #define HELP "help" /* the file containing command descriptions */ 51. #define SHELP "hh" /* abbreviated form of the same */ 52. #define RUMORFILE "rumors" /* a file with fortune cookies */ 53. #define DATAFILE "data" /* a file giving the meaning of symbols used */ 54. #define FMASK 0660 /* file creation mask */ 55. 56. #ifdef UNIX 57. #define HLOCK "perm" /* an empty file used for locking purposes */ 58. #define LLOCK "safelock" /* link to previous */ 59. 60. /* 61. * Define DEF_PAGER as your default pager, e.g. "/bin/cat" or "/usr/ucb/more" 62. * If defined, it can be overridden by the environment variable PAGER. 63. * Hack will use its internal pager if DEF_PAGER is not defined. 64. * (This might be preferable for security reasons.) 65. * #define DEF_PAGER ".../mydir/mypager" 66. */ 67. 68. /* 69. * If you define MAIL, then the player will be notified of new mail 70. * when it arrives. If you also define DEF_MAILREADER then this will 71. * be the default mail reader, and can be overridden by the environment 72. * variable MAILREADER; otherwise an internal pager will be used. 73. * A stat system call is done on the mailbox every MAILCKFREQ moves. 74. */ 75. #define MAIL 76. #define DEF_MAILREADER "/usr/bin/mail" /* or e.g. /bin/mail */ 77. #define MAILCKFREQ 1 78. 79. 80. #define SHELL /* do not delete the '!' command */ 81. 82. #ifdef BSD 83. #define SUSPEND /* let ^Z suspend the game */ 84. #endif 85. 86. #ifdef BSD 87. /* Use the high quality random number routines. */ 88. extern long random(); 89. #define rand() random() 90. #define srand(seed) srandom(seed) 91. #else 92. extern long lrand48(); 93. #define rand() lrand48() 94. #define srand(seed) srand48(seed) 95. #endif 96. #endif /* UNIX /**/ 97. 98. #ifdef CHDIR 99. /* 100. * If you define HACKDIR, then this will be the default playground; 101. * otherwise it will be the current directory. 102. */ 103. #define HACKDIR "/usr/games/lib/nethackdir" 104. 105. /* 106. * Some system administrators are stupid enough to make Hack suid root 107. * or suid daemon, where daemon has other powers besides that of reading or 108. * writing Hack files. In such cases one should be careful with chdir's 109. * since the user might create files in a directory of his choice. 110. * Of course SECURE is meaningful only if HACKDIR is defined. 111. */ 112. #define SECURE /* do setuid(getuid()) after chdir() */ 113. 114. /* 115. * If it is desirable to limit the number of people that can play Hack 116. * simultaneously, define HACKDIR, SECURE and MAX_NR_OF_PLAYERS. 117. * #define MAX_NR_OF_PLAYERS 6 118. */ 119. #endif /* CHDIR /**/ 120. 121. /* size of terminal screen is (at least) (ROWNO+2) by COLNO */ 122. #define COLNO 80 123. #define ROWNO 22 124. 125. #ifdef BSD 126. #include /* declarations for strcat etc. */ 127. #define memcpy(d, s, n) bcopy(s, d, n) 128. #define memcmp(s1, s2, n) bcmp(s2, s1, n) 129. #else 130. #include /* idem on System V */ 131. #define index strchr 132. #define rindex strrchr 133. #endif 134. 135. /* 136. * small signed integers (8 bits suffice) 137. * typedef char schar; 138. * will do when you have signed characters; otherwise use 139. * typedef short int schar; 140. */ 141. typedef char schar; 142. 143. /* 144. * small unsigned integers (8 bits suffice - but 7 bits do not) 145. * - these are usually object types; be careful with inequalities! - 146. * typedef unsigned char uchar; 147. * will be satisfactory if you have an "unsigned char" type; otherwise use 148. * typedef unsigned short int uchar; 149. */ 150. typedef unsigned char uchar; 151. 152. /* 153. * small integers in the range 0 - 127, usually coordinates 154. * although they are nonnegative they must not be declared unsigned 155. * since otherwise comparisons with signed quantities are done incorrectly 156. */ 157. typedef schar xchar; 158. typedef xchar boolean; /* 0 or 1 */ 159. /* #define void int /* define if no "void" data type. */ 160. #define TRUE 1 161. #define FALSE 0 162. 163. /* 164. * Declaration of bitfields in various structs; if your C compiler 165. * doesnt handle bitfields well, e.g., if it is unable to initialize 166. * structs containing bitfields, then you might use 167. * #define Bitfield(x,n) uchar x 168. * since the bitfields used never have more than 7 bits. (Most have 1 bit.) 169. * otherwise: 170. * #define Bitfield(x,n) unsigned x:n 171. */ 172. #define Bitfield(x,n) uchar x 173. 174. #define SIZE(x) (int)(sizeof(x) / sizeof(x0)) 175. 176. #ifdef MSDOS 177. #include 178. #define exit msexit /* do chdir first */ 179. #ifdef getchar 180. # undef getchar 181. #endif /* getchar /**/ 182. #define getchar tgetch 183. #define DGK /* MS DOS specific enhancements by dgk */ 184. 185. #ifdef DGK 186. # include "msdos.h" /* contains necessary externs for msdos.c */ 187. # define SHELL /* via exec of COMMAND.COM */ 188. # define PATHLEN 64 /* maximum pathlength */ 189. # define FILENAME 80 /* maximum filename length (conservative) */ 190. # define FROMPERM 1 /* for ramdisk use */ 191. # define TOPERM 2 /* for ramdisk use */ 192. # define glo(x) name_file(lock, x) /* name_file used for bones */ 193. extern char *configfile; 194. #endif /* DGK /**/ 195. #endif /* MSDOS /**/ 196. 197. /* 198. * Conditional compilation of special options are controlled here. 199. * If you define the following flags, you will add not only to the 200. * complexity of the game but also to the size of the load module. 201. */ 202. 203. #define DOGNAME /* Name of your first dog as an option */ 204. #define SPELLS /* Spell casting by M. Stephenson */ 205. #define PRAYERS /* Prayer code by M. Stephenson */ 206. #define KAA /* Various changes made by Ken Arromdee */ 207. #define MARKER /* Magic marker modification from Gil Neiger */ 208. #define NEWCLASS /* Samurai/Ninja etc. by M. Stephenson */ 209. #define SAFE_ATTACK /* Safe attack code by Don Kneller */ 210. #define PROBING /* Wand of probing code by Gil Neiger */ 211. #define DIAGS /* Diagnostics after death/quit by Gil Neiger */ 212. #define SORTING /* Sorted inventory by Don Kneller */ 213. #define DGKMOD /* Additional features by Don Kneller */ 214. #define REDO /* support for redoing last command - DGK */ 215. #define HARD /* Enhanced wizard code by M. Stephenson */ 216. #define WALKIES /* Leash code by M. Stephenson */ 217. #define NEWTRAPS /* Magic and Squeeky board traps by Scott R. Turner*/ 218. #define FREEHAND /* Cannot use Pick-axe without wielding it. */ 219. #define SPIDERS /* Spiders and webs by Scott R. Turner */ 220. #define FOUNTAINS /* Fountain code by SRT (+ GAN + EB) */ 221. #define KOPS /* Keystone Kops by Scott R. Turner */ 222. #define ROCKMOLE /* Rockmoles by Scott R. Turner */ 223. #define COM_COMPL /* Command line completion by John S. Bien */ 224. #define GRAPHICS /* Funky screen character support (Eric S. Raymond) */ 225. #define HACKOPTIONS /* Support DGK-style HACKOPTIONS processing (ESR) */ 226. #define RPH /* Various hacks by Richard P. Hughey */ 227. #define KJSMODS /* Various changes made by Kevin Sweet */ 228. #define BVH /* Additions by Bruce Holloway */ 229. #define SAC /* Soldiers, barracks by Steve Creps */ 230. #define SHIRT /* Hawaiian shirt code by Steve Linhart */ 231. #define THEOLOGY /* Smarter gods - The Unknown Hacker */ 232. #define STOOGES /* Three wild and crazy guys - Bruce Mewborne */ 233. #define SINKS /* Kitchen sinks - Janet Walz */ 234. 235. #ifdef MSDOS 236. #define TERMLIB /* enable use of termcap file c:\etc\termcap */ 237. /* or .\termcap.cnf for MSDOS (SAC) */ 238. # ifdef GRAPHICS 239. # define MSDOSCOLOR 240. # endif 241. #endif 242. 243. /* 244. * Status Line options. 245. */ 246. 247. #define GOLD_ON_BOTL 248. #define EXP_ON_BOTL 249. #define SCORE_ON_BOTL /* added by Gary Erickson (erickson@ucivax) */ 250. 251. #ifdef REDO 252. #define DOAGAIN '\001' /* Used in tty.c and cmd.c */ 253. #endif 254. 255. #ifdef DGKMOD 256. #define LARGEST_INT ((1 << 15) - 1) 257. #endif 258. 259. #endif /* CONFIG /**/ config.h